<#include "common/ReuseLogging.ftl">
debugLogging.assignCommParam('${nodeId}', '${nodeType}', '${nodeName}', node.${parentNodeId}<#if loop> + '_' + loopIndex</#if>, '');

<#include "common/UndefinedCheck.ftl">

<#if alwaysTrue.alwaysTrue>
    if(true)
<#else >
    if(${alwaysTrue.left} ${alwaysTrue.comparator} <#if alwaysTrue.right??>${alwaysTrue.right}</#if>){
</#if>
    node.${nodeId}<#if loop> + '_' + loopIndex</#if> = true;
    <#if loop> node.${nodeId}.push(true);</#if>
    debugLogging.assignOutput(true);
    logEndTime = DebugLogging.getTimestamp();
    debugLogging.assignDiffTime(logStartTime, logEndTime);
    node.debugLog.push(debugLogging);
    <#list methodCalls as call>
        <#if call_index == 0>
            ${call}
        </#if>
    </#list>
}
<#list elseIfList as item >
    <#if item.alwaysTrue>
        else if(true)
        <#else >
        else if(${item.left} ${item.comparator} <#if item.right??>${item.right}</#if>)
    </#if>
       {    node.${nodeId}<#if loop> + '_' + loopIndex</#if> = true;
            <#if loop> node.${nodeId}.push(true);</#if>
            debugLogging.assignOutput(true);
            logEndTime = DebugLogging.getTimestamp();
            debugLogging.assignDiffTime(logStartTime, logEndTime);
            node.debugLog.push(debugLogging);
            <#list methodCalls as call>
                <#if call_index == item_index + 1>
                    ${call}
                </#if>
            </#list>
        }
</#list>